package main

import (
	"fmt"
)

type ListNode struct {
	Val  int
	Next *ListNode
}

/**
执行用时：0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗：2.2 MB, 在所有 Go 提交中击败了99.97%的用户
 */
func removeNthFromEnd(head *ListNode, n int) *ListNode {

	dummy := &ListNode{Val: -1}
	dummy.Next = head
	p, q := dummy, dummy

	for i := 0; i < n + 1; i++ { q = q.Next }
	for q != nil {
		p = p.Next
		q = q.Next
	}

	p.Next = p.Next.Next
	return dummy.Next
}

func main() {
	fmt.Println("Hello World!")
}
